const CryptoJS = require("crypto-js");

// 设置密钥和密钥偏移量
const SECRET_KEY = CryptoJS.enc.Utf8.parse("0123456789abcdef");
const SECRET_IV = CryptoJS.enc.Utf8.parse("0123456789abcdef");

// 加密方法
function encrypt(data) {
    const dataHex = CryptoJS.enc.Utf8.parse(data);
    const encrypted = CryptoJS.AES.encrypt(dataHex, SECRET_KEY, {
        iv: SECRET_IV,  // 密钥偏移量
        mode: CryptoJS.mode.CBC,  // 加密模式
        padding: CryptoJS.pad.Pkcs7  // 填充模式
    });
    return encrypted.toString(); // 返回密文字符串而不是加密对象
}

// 解密方法
function decrypt(data) {
    const decrypted = CryptoJS.AES.decrypt(data, SECRET_KEY, {
        iv: SECRET_IV,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    return CryptoJS.enc.Utf8.stringify(decrypted); // 解密后再转换成字符串
}

module.exports = {
    encrypt,
    decrypt
};